/// <summary>
/// Copyright 2010 Ivo Limmen (ivo@limmen.org)
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
/// 
/// http://www.apache.org/licenses/LICENSE-2.0
/// 
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
/// </summary>

using System;
using Services.Logging.Api;

namespace ServiceController.Logging
{
	public class StandardOutLogger : ILogger
	{
		private string source;
		
		public StandardOutLogger (string source)		
		{
			this.source = source;
		}
		
		#region ILogService implementation
		
		public void Debug(string message)
		{
			Out("DBG", message);
		}
		
		public void Info(string message)
		{
			Out("INF", message);
		}
		
		public void Warn (string message)
		{
			Out("WRN", message);
		}
		
		public void Error (string message)
		{
			Out("ERR", message);
		}

		private void Out(string type, string message) 
		{
			string stamp = DateTime.Now.ToString("s");
			System.Diagnostics.Debug.WriteLine(string.Format("{0} [{1}] [{2}] - {3}", stamp, type, this.source, message));
		}
		
		#endregion		
	}
}
